#ifndef _CBSOCKET_CBSOCKET_H
#define _CBSOCKET_CBSOCKET_H

#include <set>

namespace cbsocket
{
    class AbstractCallback;
    class CBSocket
    {
    public:
        CBSocket();
        ~CBSocket();
        
        bool addSocket(int fd, AbstractCallback *callback);
        void run();
        void stop();
        
    private:
        std::set<AbstractCallback*> callbacks;
        int epollfd;
        bool running;
    };
}

#endif
